package demo4;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class JDKInvocationHandler implements InvocationHandler {

    Object target;//目标对象

    public JDKInvocationHandler(Object target) {
        this.target = target;
    }

    @Override
    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
        System.out.println("proxy: "+ proxy.getClass().getName());
        System.out.println("代理的目标对象的类 : "+ target.getClass().getName());
        System.out.println("所执行的方法 : "+ method.getName());

        //getAge.invoke(p1,String.class)
        Object res=method.invoke(target,args);//执行目标对象的指定的方法

        return "JDK动态代理处理的返回值是 : "+ res.toString();
    }
}
